package cn.jsj.dispose;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.jsj.object.FrontCaseInfo;
import cn.jsj.pojo.TblCaseInfo;
import cn.jsj.utils.ProduceJsonData;
import cn.jsj.utils.SysLogger;

/**
 * 加载所有的案件信息
 * @author LI
 *
 */
 public class CaseInfoSearch extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
	public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// 调试信息
		cn.jsj.utils.SysLogger.PrintInfo("进入加载所有案件信息处理类！！！！");

		//获得参数：1.第几条开始。2.一页显示几条
		int startNumb=Integer.parseInt(request.getParameter("start"));
		int totalNumb=Integer.parseInt(request.getParameter("limit"));

		//调试信息
		cn.jsj.utils.SysLogger.PrintInfo("start---->"+startNumb+"   total--------->"+totalNumb);

		//获得session对象
		javax.servlet.http.HttpSession session=request.getSession();

		//获得案件信息条数
		cn.jsj.dao.TblCaseInfoDAO tcd=new cn.jsj.dao.TblCaseInfoDAO();
		int caseNumber=0;
		//判断用户类型
		int popedomLevel=(Integer)session.getAttribute("popedomLevel");
		String roleName=(String)session.getAttribute("roleName");
		String userName=(String)session.getAttribute("userName");
		int userId=(Integer)session.getAttribute("userId");
		//如果为普通律师
		if(popedomLevel==3&&roleName.equalsIgnoreCase("律师")){
			caseNumber=tcd.getCaseInfoNumber(userId);
		}else{
			caseNumber=tcd.getCaseInfoNumber(0);
		}

		//调试信息
		cn.jsj.utils.SysLogger.PrintInfo("案件信息条数------->"+caseNumber);

		//案件信息队列
		java.util.List<cn.jsj.pojo.TblCaseInfo> caseInfoList=new java.util.LinkedList<TblCaseInfo>();
		//如果为普通律师
		if(popedomLevel==3&&roleName.equalsIgnoreCase("律师")){
			caseInfoList=tcd.getPageCaseInfo(startNumb, totalNumb, userId);
		}else{
				caseInfoList=tcd.getPageCaseInfo(startNumb, totalNumb, 0);
			}

		//前台需要的案件信息队列
		java.util.List<cn.jsj.object.FrontCaseInfo> frontCaseList=new java.util.LinkedList<FrontCaseInfo>();

		//将从数据库里面取出来的案件信息对象转化为前台需要的对象
		cn.jsj.object.rebuild.CaseInfoRebuild cir=new cn.jsj.object.rebuild.CaseInfoRebuild();
		cn.jsj.object.FrontCaseInfo fci=new cn.jsj.object.FrontCaseInfo();
		for(int i=0;i<caseInfoList.size();i++){
			fci=cir.rebuildCaseInfo(caseInfoList.get(i));
			frontCaseList.add(fci);
		}

		//改造成JSON型数据
		ProduceJsonData pjd=new ProduceJsonData();
		String resultData=	pjd.jsonFromList(frontCaseList,caseNumber);

		//调试信息
		SysLogger.PrintInfo(resultData);
		//输出到客户端
		java.io.PrintWriter pw=response.getWriter();
		pw.println(resultData);
		pw.flush();
		pw.close();

	}
}